﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace nHydrate.EFCore.DataAccess
{
	public interface INHEntityObject
	{
		/// <summary>
		/// Test another entity object for equivalence against the current instance
		/// </summary>
		bool IsEquivalent(INHEntityObject item);

		/// <summary>
		/// Determines if all of the validation rules have been met
		/// </summary>
		bool IsValid();

		/// <summary>
		/// Get the validation rule violations
		/// </summary>
		IEnumerable<IRuleViolation> GetRuleViolations();

	}
}